package leetcode.code0321;

import leetcode.IDebug;
import leetcode.helper.HelpDebug;

public abstract class Solution321 implements IDebug {

	public abstract int[] maxNumber(int[] nums1, int[] nums2, int k);

	@Override
	public void debug1() {
		int[] nums1 = HelpDebug.str2array3("[3,4,6,5]");
		int[] nums2 = HelpDebug.str2array3("[9,1,2,5,8,3]");
		int k = 5;
		int[] e = HelpDebug.str2array3("[9,8,6,5,3]");
		int[] r = this.maxNumber(nums1, nums2, k);
		HelpDebug.compare(e, r);
	}

	@Override
	public void debug2() {
		int[] nums1 = HelpDebug.str2array3("[6, 7]");
		int[] nums2 = HelpDebug.str2array3("[6, 0, 4]");
		int k = 5;
		int[] e = HelpDebug.str2array3("[6, 7, 6, 0, 4]");
		int[] r = this.maxNumber(nums1, nums2, k);
		HelpDebug.compare(e, r);
	}

	public void debug5() {
		int[] nums1 = HelpDebug.str2array3("[6, 7, 0]");
		int[] nums2 = HelpDebug.str2array3("[6, 7, 4]");
		int k = 6;
		int[] e = HelpDebug.str2array3("[6, 7, 6, 7, 4, 0]");
		int[] r = this.maxNumber(nums1, nums2, k);
		HelpDebug.compare(e, r);
	}

	public void debug6() {
		int[] nums1 = HelpDebug.str2array3("[6, 7, 4]");
		int[] nums2 = HelpDebug.str2array3("[6, 7, 0]");
		int k = 6;
		int[] e = HelpDebug.str2array3("[6, 7, 6, 7, 4, 0]");
		int[] r = this.maxNumber(nums1, nums2, k);
		HelpDebug.compare(e, r);
	}

	@Override
	public void debug3() {
		int[] nums1 = HelpDebug.str2array3("[3, 9]");
		int[] nums2 = HelpDebug.str2array3("[8, 9]");
		int k = 3;
		int[] e = HelpDebug.str2array3("[9, 8, 9]");
		int[] r = this.maxNumber(nums1, nums2, k);
		HelpDebug.compare(e, r);
	}

	@Override
	public void debug4() {
		int[] nums1 = HelpDebug.str2array3("[8,6,5,9,7,3,4]");
		int[] nums2 = HelpDebug.str2array3("[8,3,4,3]");
		int k = 6;
		int[] e = HelpDebug.str2array3("[9,8,7,4,4,3]");
		int[] r = this.maxNumber(nums1, nums2, k);
		HelpDebug.compare(e, r);
	}

	public void debug7() {
		int[] nums1 = HelpDebug.str2array3("[6, 4, 7]");
		int[] nums2 = HelpDebug.str2array3("[6, 3, 7]");
		int k = 6;
		int[] e = HelpDebug.str2array3("[6, 6, 4,7, 3,7]");
		int[] r = this.maxNumber(nums1, nums2, k);
		HelpDebug.compare(e, r);
	}
}
